In [ ]:
!pip install opencv-python pillow scikit-image
In [2]:
path = 'E:/IAM/imagens_am/'
In [5]:
from PIL import Image
In [8]:
from pylab import *
In [9]:
im_1 = array(Image.open(path + 'arara.jpg'))
In [10]:
im_1
Out[10]:
array([[[ 57, 124,  53],
        [ 56, 123,  52],
        [ 55, 122,  51],
        ...,
        [ 62, 100,  41],
        [ 62, 100,  41],
        [ 62, 100,  41]],

       [[ 59, 126,  55],
        [ 58, 125,  54],
        [ 57, 124,  53],
        ...,
        [ 62, 100,  41],
        [ 61,  99,  40],
        [ 61,  99,  40]],

       [[ 59, 126,  55],
        [ 59, 126,  55],
        [ 58, 125,  54],
        ...,
        [ 62, 100,  41],
        [ 62, 100,  41],
        [ 61,  99,  40]],

       ...,

       [[ 80,  46,  18],
        [ 82,  48,  20],
        [ 86,  52,  24],
        ...,
        [ 40,  68,  10],
        [ 37,  65,   7],
        [ 36,  64,   6]],

       [[ 80,  46,  18],
        [ 83,  49,  21],
        [ 88,  54,  26],
        ...,
        [ 39,  67,   9],
        [ 37,  65,   7],
        [ 36,  64,   6]],

       [[ 80,  45,  17],
        [ 85,  50,  22],
        [ 90,  56,  28],
        ...,
        [ 38,  66,   8],
        [ 36,  64,   6],
        [ 35,  63,   5]]], dtype=uint8)
In [11]:
imshow(im_1)
Out[11]:
<matplotlib.image.AxesImage at 0x123b5d665b0>
In [20]:
def plot_imagens_2(img1, tit1, img2, tit2, res):
    figure(figsize = res)
    plt.subplot(1, 2, 1), plt.imshow(img1), plt.title(tit1)
    plt.xticks([]), plt.yticks([])
    plt.subplot(1, 2, 2), plt.imshow(img2), plt.title(tit2)
    plt.xticks([]), plt.yticks([])
    plt.show()   

def plot_imagens_3(img1, tit1, img2, tit2, img3, tit3,  res):
    figure(figsize = res)
    plt.subplot(1, 3, 1), plt.imshow(img1), plt.title(tit1)
    plt.xticks([]), plt.yticks([])
    plt.subplot(1, 3, 2), plt.imshow(img2), plt.title(tit2)
    plt.xticks([]), plt.yticks([])
    plt.subplot(1, 3, 3), plt.imshow(img3), plt.title(tit3)
    plt.xticks([]), plt.yticks([])

    plt.show() 
In [19]:
plot_imagens_2(im_1, 'teste1', im_1, 'teste2', (20, 20))
In [17]:
plot_imagens_3(im_1, 'teste1', im_1, 'teste2', im_1, 'teste3', (20, 20))
In [21]:
im_1.shape
Out[21]:
(2367, 3557, 3)
In [22]:
im_2 = array(Image.open(path + 'placa_saltpepper.png'))
In [23]:
im_2.shape
Out[23]:
(440, 455)
In [24]:
im_2
Out[24]:
array([[246, 247, 255, ..., 255, 255, 255],
       [247, 255, 255, ..., 255,   0,   0],
       [249, 250, 251, ...,   0,   0,   0],
       ...,
       [255,   0, 232, ..., 156, 255, 255],
       [233, 233, 232, ..., 255, 149, 149],
       [233,   0,   0, ...,   0, 150, 150]], dtype=uint8)
In [25]:
type(im_1)
Out[25]:
numpy.ndarray
In [26]:
type(im_2)
Out[26]:
numpy.ndarray
In [27]:
im_1.ravel()
Out[27]:
array([ 57, 124,  53, ...,  35,  63,   5], dtype=uint8)
In [28]:
im_1.ravel().shape
Out[28]:
(25258257,)
In [29]:
plt.hist(im_1.ravel())
Out[29]:
(array([2481894., 4792124., 5747287., 4419498., 3176522., 1858291.,
        1249806.,  731218.,  371727.,  429890.]),
 array([  0. ,  25.5,  51. ,  76.5, 102. , 127.5, 153. , 178.5, 204. ,
        229.5, 255. ]),
 <BarContainer object of 10 artists>)
In [30]:
im_3 = array(Image.open(path + 'psg_praia.jpg'))
In [31]:
plt.hist(im_3.ravel())
Out[31]:
(array([245684., 180568., 236019., 235457., 260259., 342614., 496208.,
        565854., 650930., 234307.]),
 array([  0. ,  25.5,  51. ,  76.5, 102. , 127.5, 153. , 178.5, 204. ,
        229.5, 255. ]),
 <BarContainer object of 10 artists>)
In [44]:
from PIL import ImageOps
In [45]:
im_4 = Image.fromarray(np.uint8(im_3))
In [46]:
img_eq = ImageOps.equalize(im_4)
In [48]:
img_eq = array(img_eq)
In [49]:
plt.hist(img_eq.ravel())
Out[49]:
(array([350539., 332717., 355551., 345008., 354328., 341760., 345017.,
        340786., 342013., 340181.]),
 array([  0. ,  25.5,  51. ,  76.5, 102. , 127.5, 153. , 178.5, 204. ,
        229.5, 255. ]),
 <BarContainer object of 10 artists>)
In [51]:
plot_imagens_2(im_3, 'original', img_eq, 'equalizada', (20, 20))
In [53]:
import cv2
In [54]:
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from pylab import *
In [55]:
im_cv1 = cv2.imread(path + 'psg_praia.jpg')
In [56]:
im_i1 = array(Image.open(path + 'psg_praia.jpg'))
In [57]:
plot_imagens_2(im_cv1, 'OpenCV', im_i1, 'Image', (20, 20))
In [59]:
im_cv1_c = cv2.cvtColor(im_cv1, cv2.COLOR_BGR2RGB)
In [60]:
plot_imagens_2(im_cv1_c, 'OpenCV_C', im_i1, 'Image', (20, 20))
In [61]:
imshow(im_cv1_c)
Out[61]:
<matplotlib.image.AxesImage at 0x123ba319850>
In [64]:
im_r = im_cv1_c[550:610, 790:1000]
In [65]:
imshow(im_r)
Out[65]:
<matplotlib.image.AxesImage at 0x123ba3ddfa0>
In [66]:
im_coco = im_cv1_c[70:120, 170:280]
In [67]:
imshow(im_coco)
Out[67]:
<matplotlib.image.AxesImage at 0x123ba45a7c0>
In [68]:
im_coco
Out[68]:
array([[[ 17,  13,  10],
        [ 11,   7,   6],
        [  9,   3,   5],
        ...,
        [ 42,  50,   0],
        [ 51,  63,   0],
        [129, 143,  64]],

       [[ 24,  23,  21],
        [ 10,   8,   9],
        [  1,   0,   4],
        ...,
        [ 51,  59,   0],
        [ 85,  97,  23],
        [112, 126,  47]],

       [[ 15,  19,  20],
        [ 10,  14,  17],
        [  2,   5,  12],
        ...,
        [ 60,  68,   8],
        [ 83,  94,  18],
        [102, 115,  35]],

       ...,

       [[ 78,  72,  38],
        [ 64,  58,  32],
        [ 45,  37,  26],
        ...,
        [ 67,  61,  35],
        [ 40,  36,   9],
        [ 32,  30,   5]],

       [[ 64,  58,  34],
        [ 43,  37,  25],
        [ 48,  42,  44],
        ...,
        [ 47,  40,  12],
        [ 71,  65,  39],
        [ 65,  64,  36]],

       [[ 34,  30,  18],
        [ 31,  27,  26],
        [ 80,  76,  90],
        ...,
        [ 30,  23,   0],
        [ 63,  58,  29],
        [ 37,  36,   8]]], dtype=uint8)
In [69]:
pwd
Out[69]:
'E:\\IAM'
In [70]:
cv2.imwrite('ilha.jpg', im_r)
Out[70]:
True
In [71]:
im_cv1_c.shape
Out[71]:
(900, 1277, 3)
In [72]:
im_red = im_cv1_c[:, :, 0]
In [73]:
im_green = im_cv1_c[:, :, 1]
In [74]:
im_blue = im_cv1_c[:, :, 2]
In [75]:
plot_imagens_3(im_red, 'R', im_green, 'G', im_blue, 'B', (20,20))
In [76]:
plot_imagens_2(im_red, 'R', im_cv1_c, 'Original', (20, 20))
In [77]:
plot_imagens_2(im_blue, 'B', im_cv1_c, 'Original', (20, 20))
In [78]:
plot_imagens_2(im_green, 'G', im_cv1_c, 'Original', (20, 20))
In [79]:
im_b, im_g, im_r = cv2.split(im_cv1_c)
In [80]:
imshow(im_b)
Out[80]:
<matplotlib.image.AxesImage at 0x123c05125e0>
In [81]:
im_ori = cv2.merge((im_b, im_g, im_r))
In [82]:
imshow(im_ori)
Out[82]:
<matplotlib.image.AxesImage at 0x123ba3ba8e0>
In [83]:
im_cv1_hsv = cv2.cvtColor(im_cv1, cv2.COLOR_BGR2HSV)
In [84]:
im_h, im_s, im_v = cv2.split(im_cv1_hsv)
In [86]:
plot_imagens_3(im_h, 'H', im_s, 'S', im_v, 'V', (20,20)) 
In [87]:
import numpy as np
In [88]:
im_ar2 = cv2.imread(path + 'arara2.jpg')
In [112]:
im_ar2_hsv = cv2.cvtColor(im_ar2, cv2.COLOR_BGR2HSV)
In [113]:
lim_ini = np.array([120, 30, 0])
lim_fim = np.array([179, 255, 255])
In [114]:
templ_cor = cv2.inRange(im_ar2_hsv, lim_ini, lim_fim)
In [115]:
saida = cv2.bitwise_and(im_ar2, im_ar2, mask=templ_cor)
In [116]:
cv2.imshow('Resultado', np.hstack((im_ar2, saida)))
cv2.waitKey(0)
cv2.destroyAllWindows()
In [123]:
im_reduzida = cv2.resize(im_ar2, None, fx = .25, fy = .25, 
                         interpolation = cv2..INTER_CUBIC)
In [124]:
im_ar2_hsv.shape
Out[124]:
(450, 384, 3)
In [125]:
im_reduzida.shape
Out[125]:
(112, 96, 3)
In [126]:
plot_imagens_2(im_ar2, 'Original', im_reduzida, 'Reduzida', (20,20))
In [ ]:
 
In [127]:
imshow(im_v)
Out[127]:
<matplotlib.image.AxesImage at 0x123c23b0eb0>
In [128]:
shape(im_v)
Out[128]:
(900, 1277)
In [129]:
im_vT = im_v.T
In [131]:
shape(im_vT)
Out[131]:
(1277, 900)
In [130]:
imshow(im_vT)
Out[130]:
<matplotlib.image.AxesImage at 0x123bf859e50>
In [132]:
im_vct = cv2.transpose(im_ar2)
In [134]:
plot_imagens_2(im_ar2, 'Original', im_vct, 'Transposta', (20,20))
In [135]:
im_p1 = cv2.imread(path + 'pegada1.jpg')
im_p1_c = cv2.cvtColor(im_p1, cv2.COLOR_BGR2RGB)
In [137]:
im_p2 = cv2.imread(path + 'pegada_2.jpg')
im_p2_c = cv2.cvtColor(im_p2, cv2.COLOR_BGR2RGB)
In [142]:
shape(im_p1_c), shape(im_p2_c)
Out[142]:
((174, 403, 3), (178, 398, 3))
In [141]:
im_p2_c_r = cv2.resize(im_p2_c, (403, 174))
In [146]:
plot_imagens_3(im_p1_c, 'Im1', 
              im_p2_c_r, 'Im2', 
              (im_p1_c - im_p2_c_r), 'Diferença', (20, 20))
In [ ]:
 
In [ ]:
 
In [138]:
plot_imagens_2(im_p1_c, 'P1', im_p2_c, 'P2', (20,20))
In [147]:
pathv = "E:/IAM/imagens_am/video/"
In [153]:
video = cv2.VideoCapture(pathv + 'mont_russa.mp4')
cont_frames = 0

while(True):
    ret, frame = video.read()
    if ret:
        nome = pathv + '_' + "{0:03}".format(cont_frames) + '.jpg' 
        print(nome)
        cv2.imwrite(nome, frame)
        cont_frames += 1
    else:
        break
print('Fim da geração.')
E:/IAM/imagens_am/video/_000.jpg
E:/IAM/imagens_am/video/_001.jpg
E:/IAM/imagens_am/video/_002.jpg
E:/IAM/imagens_am/video/_003.jpg
E:/IAM/imagens_am/video/_004.jpg
E:/IAM/imagens_am/video/_005.jpg
E:/IAM/imagens_am/video/_006.jpg
E:/IAM/imagens_am/video/_007.jpg
E:/IAM/imagens_am/video/_008.jpg
E:/IAM/imagens_am/video/_009.jpg
E:/IAM/imagens_am/video/_010.jpg
E:/IAM/imagens_am/video/_011.jpg
E:/IAM/imagens_am/video/_012.jpg
E:/IAM/imagens_am/video/_013.jpg
E:/IAM/imagens_am/video/_014.jpg
E:/IAM/imagens_am/video/_015.jpg
E:/IAM/imagens_am/video/_016.jpg
E:/IAM/imagens_am/video/_017.jpg
E:/IAM/imagens_am/video/_018.jpg
E:/IAM/imagens_am/video/_019.jpg
E:/IAM/imagens_am/video/_020.jpg
E:/IAM/imagens_am/video/_021.jpg
E:/IAM/imagens_am/video/_022.jpg
E:/IAM/imagens_am/video/_023.jpg
E:/IAM/imagens_am/video/_024.jpg
E:/IAM/imagens_am/video/_025.jpg
E:/IAM/imagens_am/video/_026.jpg
E:/IAM/imagens_am/video/_027.jpg
E:/IAM/imagens_am/video/_028.jpg
E:/IAM/imagens_am/video/_029.jpg
E:/IAM/imagens_am/video/_030.jpg
E:/IAM/imagens_am/video/_031.jpg
E:/IAM/imagens_am/video/_032.jpg
E:/IAM/imagens_am/video/_033.jpg
E:/IAM/imagens_am/video/_034.jpg
E:/IAM/imagens_am/video/_035.jpg
E:/IAM/imagens_am/video/_036.jpg
E:/IAM/imagens_am/video/_037.jpg
E:/IAM/imagens_am/video/_038.jpg
E:/IAM/imagens_am/video/_039.jpg
E:/IAM/imagens_am/video/_040.jpg
E:/IAM/imagens_am/video/_041.jpg
E:/IAM/imagens_am/video/_042.jpg
E:/IAM/imagens_am/video/_043.jpg
E:/IAM/imagens_am/video/_044.jpg
E:/IAM/imagens_am/video/_045.jpg
E:/IAM/imagens_am/video/_046.jpg
E:/IAM/imagens_am/video/_047.jpg
E:/IAM/imagens_am/video/_048.jpg
E:/IAM/imagens_am/video/_049.jpg
E:/IAM/imagens_am/video/_050.jpg
E:/IAM/imagens_am/video/_051.jpg
E:/IAM/imagens_am/video/_052.jpg
E:/IAM/imagens_am/video/_053.jpg
E:/IAM/imagens_am/video/_054.jpg
E:/IAM/imagens_am/video/_055.jpg
E:/IAM/imagens_am/video/_056.jpg
E:/IAM/imagens_am/video/_057.jpg
E:/IAM/imagens_am/video/_058.jpg
E:/IAM/imagens_am/video/_059.jpg
E:/IAM/imagens_am/video/_060.jpg
E:/IAM/imagens_am/video/_061.jpg
E:/IAM/imagens_am/video/_062.jpg
E:/IAM/imagens_am/video/_063.jpg
E:/IAM/imagens_am/video/_064.jpg
E:/IAM/imagens_am/video/_065.jpg
E:/IAM/imagens_am/video/_066.jpg
E:/IAM/imagens_am/video/_067.jpg
E:/IAM/imagens_am/video/_068.jpg
E:/IAM/imagens_am/video/_069.jpg
E:/IAM/imagens_am/video/_070.jpg
E:/IAM/imagens_am/video/_071.jpg
E:/IAM/imagens_am/video/_072.jpg
E:/IAM/imagens_am/video/_073.jpg
E:/IAM/imagens_am/video/_074.jpg
E:/IAM/imagens_am/video/_075.jpg
E:/IAM/imagens_am/video/_076.jpg
E:/IAM/imagens_am/video/_077.jpg
E:/IAM/imagens_am/video/_078.jpg
E:/IAM/imagens_am/video/_079.jpg
E:/IAM/imagens_am/video/_080.jpg
E:/IAM/imagens_am/video/_081.jpg
E:/IAM/imagens_am/video/_082.jpg
E:/IAM/imagens_am/video/_083.jpg
E:/IAM/imagens_am/video/_084.jpg
E:/IAM/imagens_am/video/_085.jpg
E:/IAM/imagens_am/video/_086.jpg
E:/IAM/imagens_am/video/_087.jpg
E:/IAM/imagens_am/video/_088.jpg
E:/IAM/imagens_am/video/_089.jpg
E:/IAM/imagens_am/video/_090.jpg
E:/IAM/imagens_am/video/_091.jpg
E:/IAM/imagens_am/video/_092.jpg
E:/IAM/imagens_am/video/_093.jpg
E:/IAM/imagens_am/video/_094.jpg
E:/IAM/imagens_am/video/_095.jpg
E:/IAM/imagens_am/video/_096.jpg
E:/IAM/imagens_am/video/_097.jpg
E:/IAM/imagens_am/video/_098.jpg
E:/IAM/imagens_am/video/_099.jpg
E:/IAM/imagens_am/video/_100.jpg
E:/IAM/imagens_am/video/_101.jpg
E:/IAM/imagens_am/video/_102.jpg
E:/IAM/imagens_am/video/_103.jpg
E:/IAM/imagens_am/video/_104.jpg
E:/IAM/imagens_am/video/_105.jpg
E:/IAM/imagens_am/video/_106.jpg
E:/IAM/imagens_am/video/_107.jpg
E:/IAM/imagens_am/video/_108.jpg
E:/IAM/imagens_am/video/_109.jpg
E:/IAM/imagens_am/video/_110.jpg
E:/IAM/imagens_am/video/_111.jpg
E:/IAM/imagens_am/video/_112.jpg
E:/IAM/imagens_am/video/_113.jpg
E:/IAM/imagens_am/video/_114.jpg
E:/IAM/imagens_am/video/_115.jpg
E:/IAM/imagens_am/video/_116.jpg
E:/IAM/imagens_am/video/_117.jpg
E:/IAM/imagens_am/video/_118.jpg
E:/IAM/imagens_am/video/_119.jpg
E:/IAM/imagens_am/video/_120.jpg
E:/IAM/imagens_am/video/_121.jpg
E:/IAM/imagens_am/video/_122.jpg
E:/IAM/imagens_am/video/_123.jpg
E:/IAM/imagens_am/video/_124.jpg
E:/IAM/imagens_am/video/_125.jpg
E:/IAM/imagens_am/video/_126.jpg
E:/IAM/imagens_am/video/_127.jpg
E:/IAM/imagens_am/video/_128.jpg
E:/IAM/imagens_am/video/_129.jpg
E:/IAM/imagens_am/video/_130.jpg
E:/IAM/imagens_am/video/_131.jpg
E:/IAM/imagens_am/video/_132.jpg
E:/IAM/imagens_am/video/_133.jpg
E:/IAM/imagens_am/video/_134.jpg
E:/IAM/imagens_am/video/_135.jpg
E:/IAM/imagens_am/video/_136.jpg
E:/IAM/imagens_am/video/_137.jpg
E:/IAM/imagens_am/video/_138.jpg
E:/IAM/imagens_am/video/_139.jpg
E:/IAM/imagens_am/video/_140.jpg
E:/IAM/imagens_am/video/_141.jpg
E:/IAM/imagens_am/video/_142.jpg
E:/IAM/imagens_am/video/_143.jpg
E:/IAM/imagens_am/video/_144.jpg
E:/IAM/imagens_am/video/_145.jpg
E:/IAM/imagens_am/video/_146.jpg
E:/IAM/imagens_am/video/_147.jpg
E:/IAM/imagens_am/video/_148.jpg
E:/IAM/imagens_am/video/_149.jpg
E:/IAM/imagens_am/video/_150.jpg
E:/IAM/imagens_am/video/_151.jpg
E:/IAM/imagens_am/video/_152.jpg
E:/IAM/imagens_am/video/_153.jpg
E:/IAM/imagens_am/video/_154.jpg
E:/IAM/imagens_am/video/_155.jpg
E:/IAM/imagens_am/video/_156.jpg
E:/IAM/imagens_am/video/_157.jpg
E:/IAM/imagens_am/video/_158.jpg
E:/IAM/imagens_am/video/_159.jpg
E:/IAM/imagens_am/video/_160.jpg
E:/IAM/imagens_am/video/_161.jpg
E:/IAM/imagens_am/video/_162.jpg
E:/IAM/imagens_am/video/_163.jpg
E:/IAM/imagens_am/video/_164.jpg
E:/IAM/imagens_am/video/_165.jpg
E:/IAM/imagens_am/video/_166.jpg
E:/IAM/imagens_am/video/_167.jpg
E:/IAM/imagens_am/video/_168.jpg
E:/IAM/imagens_am/video/_169.jpg
E:/IAM/imagens_am/video/_170.jpg
E:/IAM/imagens_am/video/_171.jpg
E:/IAM/imagens_am/video/_172.jpg
E:/IAM/imagens_am/video/_173.jpg
E:/IAM/imagens_am/video/_174.jpg
E:/IAM/imagens_am/video/_175.jpg
E:/IAM/imagens_am/video/_176.jpg
E:/IAM/imagens_am/video/_177.jpg
E:/IAM/imagens_am/video/_178.jpg
E:/IAM/imagens_am/video/_179.jpg
E:/IAM/imagens_am/video/_180.jpg
E:/IAM/imagens_am/video/_181.jpg
E:/IAM/imagens_am/video/_182.jpg
E:/IAM/imagens_am/video/_183.jpg
E:/IAM/imagens_am/video/_184.jpg
E:/IAM/imagens_am/video/_185.jpg
E:/IAM/imagens_am/video/_186.jpg
E:/IAM/imagens_am/video/_187.jpg
Fim da geração.
In [ ]: